/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"20FA8E71-2FB9-4AD0-8692-5E7632945840",variableType:4}
 */
var zparam_proveedores_dias_tolerancia = 5;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"AB5B8F28-678B-4DAD-801C-0DC82F172D15",variableType:4}
 */
var gProveedorRecep = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"750142C1-B915-48D5-B847-F633A08458BA",variableType:4}
 */
var gOcDetalles = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"C0BE95DB-FD5A-4513-87CD-ECD467EFE893",variableType:4}
 */
var gProveedorPrecio = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"7C41B3DA-21B5-40E2-9B37-034E62962D66",variableType:4}
 */
var gProductoPrecio = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"475BC54F-49A8-49C2-94D3-E2C1F9DD3350",variableType:4}
 */
var gProveedorOC = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"18CAA44D-223A-462B-BDDD-9F994FAC2A6A",variableType:4}
 */
var marca_primer_find = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"EFAC0720-5AB6-4FAD-B4BC-20D1D4E58E2A",variableType:4}
 */
var marca_primer_find_1 = null;

/**
 *
 * @properties={typeid:24,uuid:"FB279D43-0773-45C7-B6FB-A17C9A543CEE"}
 */
function gInicio_proveedores() {
	globals.gproveedor_o_fletero = 0;
	globals.gTipo_iva_usuario	 = usuarios_to_uservs.tasa_iva_id; 
	globals.gFechaDesde_resumen	 = new Date() 
	globals.gFechaDesde_resumen	 = globals.gFechaDesde_resumen.setDate (globals.gFechaDesde_resumen.getDate() - 90);
	globals.gFechaDesde			 = globals.gFechaDesde_resumen;  
	globals.gFechaHasta			 = new Date();
//	application.setNumpadEnterAsFocusNextEnabled(true)
	globals.gParamsAmbos(globals.gUservID, globals.gUsuarioID)
	globals.configuraCharConcat()
}

/**
 * @properties={typeid:24,uuid:"CD2988C6-FFE1-4AE4-8F4C-ABB76970C654"}
 * @AllowToRunInFind
 */
function gBajaOpago() {
	var cabecera 		= forms.opago_baja_2.foundset
	var detalle 		= cabecera.op_cabecera_to_op_detalle
	var comprobantes 	= cabecera.op_cabecera_to_op_detalle_comprob
	var retenciones 	= cabecera.op_cabecera_to_op_retenciones
	var cta_cte 		= cabecera.op_cabecera_to_ctacte_pr
	var certif			= cabecera.op_cabecera_to_reten_certificados 
	    
	databaseManager.startTransaction()
	// 02/08/2012  borrar aunque no este completa la OP
	
		//DETALLE , CHEQUE , MOVIM_CYB , SALDOS
		if (detalle.getSize() != 0)
		{
			while (detalle.getSize() != 0)
			{
				detalle.setSelectedIndex(1)
				/*  // 02/08/2012  puede no haber detalle
				if (detalle.op_detalle_to_movim_cyb.deleteRecord() == false)
				{
					databaseManager.rollbackTransaction()
					globals.DIALOGS.showWarningDialog('Aviso','No encontro el movimiento de caja y banco','OK')
					return 0
				} */
				//MOVIM_CYB
				detalle.op_detalle_to_movim_cyb.deleteRecord()  // 02/08/2012
				if (detalle.op_detalle_to_valores.es_cheque == 1)
				{  //CHEQUE
					if (detalle.op_detalle_to_valores.es_propio == 1)
					{
						detalle.op_detalle_id_to_cheques.deleteRecord()
						
					}
					else
					{  //SALDO VALORES
						detalle.op_detalle_to_cheques_id.fecha_entrega = null
						detalle.op_detalle_to_cheques_id.estado = globals.zconf_chq_en_caja							
						if (detalle.op_detalle_to_cuentas_cyb.cuentas_tipo==0) // es cuenta caja   // hace falta?
						{
							detalle.op_detalle_to_cuentas_cyb.cuentas_cyb_to_saldos_caja.saldo_valores+=detalle.importe	
						}				
					}
				}
				else // es efectivo o transferencia
				{  //SALDO EFECTIVO
					if (detalle.op_detalle_to_valores.usa_cta_bco == 0) // es efectivo
					{
						if (detalle.op_detalle_to_cuentas_cyb.cuentas_tipo==0) // es cuenta caja  // hace falta?
						{
							detalle.op_detalle_to_cuentas_cyb.cuentas_cyb_to_saldos_caja.saldo_efectivo += detalle.importe
						}
					}
				}
				// para usar en el refresh al final -> pero no va andar porque puede ser mas de reg de saldos_caja usado en la OP=entonces guarda el ultimo  
				//ver como resolver
				//registro[detalle.op_detalle_to_cuentas_cyb.cuentas_cyb_to_saldos_caja.getSelectedIndex()]=
				//	       detalle.op_detalle_to_cuentas_cyb.cuentas_cyb_to_saldos_caja.getRecord(detalle.op_detalle_to_cuentas_cyb.cuentas_cyb_to_saldos_caja.getSelectedIndex()) // 19/11/2010
				detalle.deleteRecord()
			}
		}
		/*  // 02/08/2012  puede no haber detalle
		else
		{
			databaseManager.rollbackTransaction()
			globals.DIALOGS.showWarningDialog('Aviso','No encontro el detalle del documento','OK')
			return 0
		}  */
		
		//COMPROBANTES
		if (comprobantes.getSize() != 0)
		{
			while (comprobantes.getSize() != 0)
			{
				comprobantes.setSelectedIndex(1)
				
				comprobantes.op_detalle_comprob_to_ctacte_pr.saldo += comprobantes.importe
				comprobantes.deleteRecord()
			}
		}  

		//RETENCIONES
		if (retenciones.getSize() != 0)
		{
			while (retenciones.getSize()!= 0)
			{
				retenciones.setSelectedIndex(1)
				/*  // 02/08/2012  
				if (retenciones.op_retenciones_to_ctacte_pr.deleteRecord() == false)
				{
					databaseManager.rollbackTransaction()
					globals.DIALOGS.showWarningDialog('Aviso','No encontro el movimiento de cuenta corriente de las retenciones','OK')
					return 0
				}  */
				// 02/08/2012  se agrega find y search y delete ctacte_pr
 				retenciones.op_retenciones_to_ctacte_pr.find()
				retenciones.op_retenciones_to_ctacte_pr.proveedor_id=cabecera.proveedor_id
				retenciones.op_retenciones_to_ctacte_pr.cod_mov=retenciones.op_retenciones_to_retenciones.cod_mov;
				retenciones.op_retenciones_to_ctacte_pr.search()
				retenciones.op_retenciones_to_ctacte_pr.deleteRecord() 
				
				retenciones.deleteRecord()
			}
		}
		
		if (certif.getSize() != 0)  
		{
			while (certif.getSize()!= 0)
			{
				certif.setSelectedIndex(1)
				certif.deleteRecord()
			}
		}

		//CUENTA CORRIENTE
		if (cta_cte.getSize() != 0)
		{
			cta_cte.deleteRecord()
		}
		/*  // 02/08/2012
		else
		{
			databaseManager.rollbackTransaction()
			globals.DIALOGS.showWarningDialog('Aviso','No encontro el movimiento de cuenta corriente del documento','OK')
			return 0
		}  */
		
	//BORRAR LA CABECERA
	cabecera.deleteRecord()
	
	if (databaseManager.commitTransaction() == true)
	{
		databaseManager.refreshRecordFromDatabase(comprobantes.op_detalle_comprob_to_ctacte_pr, -1); 
		/* ver como hacer para varios registros de saldos
		   for (var j=1; j<=registro.length; j++)
			{
			databaseManager.refreshRecordFromDatabase(registro[j].foundset, -1); // 19/11/2010
			}
		 */
		
		// por ahora defino foundset de toda la tabla saldos_caja
		var fs_saldos_caja= databaseManager.getFoundSet('infocom','saldos_caja')
		databaseManager.refreshRecordFromDatabase(fs_saldos_caja, -1); 
		globals.DIALOGS.showInfoDialog('Exito','Orden de pago dada de baja correctamente','OK')
	}
	else
	{
		databaseManager.rollbackTransaction()
		globals.DIALOGS.showWarningDialog('Aviso','No se pudo completar la operacion','OK')
	}
}

/**
 * @properties={typeid:24,uuid:"0CABC434-5223-4873-9B5C-B39A46513CB0"}
 */
function calculaBonificacion(texto) {
	if (texto != '' && texto != null)
	{
		var i 	= 0
		var tot = 100
		
		while (texto.indexOf('+', i) > 0)
		{
			var j = texto.indexOf('+', i)
			var nro = texto.slice(i, j) *1
			i = j+1
			tot = tot * (100 - nro) / 100
		}
		var nro = texto.slice(i, texto.length)*1
		tot = tot * (100 - nro) / 100
		var bonificacion = 100 - tot
	}
	else
		var bonificacion = 0
		
	return bonificacion
}
